#coding: utf8

from Carta import Carta

def ordenar_cartas_por_insercion(lista):
	'''Ordena una lista de instancias de Carta según el método de inserción'''
	for i in xrange(len(lista)-1):
		if lista[i+1].obtener_numero() < lista[i].obtener_numero() or lista[i].obtener_numero()==1:
			reubicar(lista,i+1)
	#por último, ponemos los ases al final (como máximo puede haber 4)
	for i in xrange(len(lista)):
		#como máximo puede haber 4
		for x in range(4):
			if lista[i].obtener_numero() == 1:
				A = lista.pop(i)
				lista.append(A)
			
def reubicar(lista,pos):
	'''Reubica a la carta que está en la posición "pos" de la lista. "Pos" debe ser una posición válida'''
	carta = lista[pos]
	p_aux = pos
	while p_aux > 0:
		if carta.obtener_numero() > lista[p_aux-1].obtener_numero():
			break
		lista[p_aux] = lista[p_aux-1]
		p_aux -= 1
	lista[p_aux] = carta
